package com.zjj.disk.pojo;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;

import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Date;

@Data
@TableName("tbl_book_keeping")
public class BookKeeping {

    /**
     * 主键ID，自增
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 项目名称
     */
    @TableField("project")
    private String project;

    /**
     * 类型
     */
    @TableField("type")
    private String type;

    /**
     * 时间
     */
    @TableField("time")
    private Date time;

    /**
     * 备注
     */
    @TableField("remark")
    private String remark;

    /**
     * 人员
     */
    @TableField("user_name")
    private String userName;

    /**
     * 创建时间
     */
    @TableField("created_at")
    private Date createdAt;

    /**
     * 金额
     */
    @TableField("amount")
    private BigDecimal amount; // 新增的金额字段

    /**
     * 最后修改时间
     */
    @TableField(value = "last_modified_at", fill = FieldFill.INSERT_UPDATE)
    private Date lastModifiedAt;

    /**
     * 获取格式化后的时间
     *
     * @return 格式化后的时间字符串
     */
    public String getFormattedTime() {
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        return time != null ? dateFormat.format(time) : null;
    }

    /**
     * 获取格式化后的创建时间
     *
     * @return 格式化后的创建时间字符串
     */
    public String getFormattedCreatedAt() {
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        return createdAt != null ? dateFormat.format(createdAt) : null;
    }

    /**
     * 获取格式化后的最后修改时间
     *
     * @return 格式化后的最后修改时间字符串
     */
    public String getFormattedLastModifiedAt() {
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        return lastModifiedAt != null ? dateFormat.format(lastModifiedAt) : null;
    }
}
